home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 5 / BBS in a Box -Volume V (BBS in a Box) (April 1992).iso / Files / Prog / M / LSC213.cpt / FileMgr.h < prev    next >
Encoding:
C/C++ Source or Header  |  1987-09-26  |  3.6 KB  |  235 lines  |  [TEXT/KAHL]

  1.  
  2. /*
  3.  *  FileMgr.h
  4.  *
  5.  *  Copyright (c) 1986, 1987 THINK Technologies, Inc.
  6.  *  These interfaces are based on information copyrighted
  7.  *  by Apple Computer, Inc., 1985, 1986, 1987.
  8.  *
  9.  */
  10.  
  11. #ifndef    _FileMgr_
  12. #define _FileMgr_
  13.     
  14. #ifndef    _MacTypes_
  15. #include "MacTypes.h"
  16. #endif
  17.  
  18.  
  19. /*  finder constants  */
  20. #define    fHasBundle    8192
  21. #define    fInvisible    16384
  22. #define    fTrash        (-3)
  23. #define    fDeskTop    (-2)
  24. #define    fDisk        0
  25. #define fOnDesk        1
  26.  
  27.  
  28. /*  ioPosMode values  */
  29. enum {
  30.     fsAtMark,
  31.     fsFromStart,
  32.     fsFromLEOF,
  33.     fsFromMark
  34. };
  35. #define rdVerify    64
  36.  
  37.  
  38. /*  ioPermssn values  */
  39. enum {
  40.     fsCurPerm,
  41.     fsRdPerm,
  42.     fsWrPerm,
  43.     fsRdWrPerm,
  44.     fsRdWrShPerm
  45. };
  46.  
  47.  
  48. /* result codes */
  49. enum {
  50.     fsDSIntErr = -127,
  51.     volGoneErr = -124,
  52.     wrgVolTypErr,
  53.     badMovErr,
  54.     tmwdoErr,
  55.     dirNFErr,
  56.     wrPermErr = -61,
  57.     badMDBErr,
  58.     fsRnErr,
  59.     extFSErr,
  60.     noMacDskErr,
  61.     nsDrvErr,
  62.     volOnLinErr,
  63.     permErr,
  64.     volOffLinErr,
  65.     gfpErr,
  66.     rfNumErr,
  67.     paramErr,
  68.     opWrErr,
  69.     dupFNErr,
  70.     fBsyErr,
  71.     vLckdErr,
  72.     fLckdErr,
  73.     wPrErr,
  74.     fnfErr,
  75.     tmfoErr,
  76.     mFulErr,
  77.     posErr,
  78.     eofErr,
  79.     fnOpnErr,
  80.     bdNamErr,
  81.     ioErr,
  82.     nsvErr,
  83.     dskFulErr,
  84.     dirFulErr
  85. };
  86.  
  87.  
  88. /*  standard header used in all PB records  */
  89. #define STANDARD_PBHEADER            \
  90.     struct QElem *    qLink;            \
  91.     int                qType;            \
  92.     int                ioTrap;            \
  93.     Ptr                ioCmdAddr;        \
  94.     ProcPtr            ioCompletion;    \
  95.     OsErr            ioResult;        \
  96.     StringPtr        ioNamePtr;        \
  97.     int                ioVRefNum;
  98.  
  99.  
  100. typedef    struct
  101.     {
  102.     OsType        fdType;
  103.     OsType        fdCreator;
  104.     int            fdFlags;
  105.     Point        fdLocation;
  106.     int            fdFldr;
  107.     } FInfo ;
  108.  
  109.  
  110. typedef struct
  111.     {
  112.     STANDARD_PBHEADER
  113.     int            ioRefNum;
  114.     SignedByte    ioVersNum;
  115.     SignedByte    ioPermssn;
  116.     Ptr            ioMisc;
  117.     Ptr            ioBuffer;
  118.     long        ioReqCount;
  119.     long        ioActCount;
  120.     int            ioPosMode;
  121.     long        ioPosOffset;
  122.     } ioParam, IOParam ;
  123.  
  124. /*  file parameter block  */
  125. typedef struct
  126.     {
  127.     STANDARD_PBHEADER
  128.     int            ioFRefNum;
  129.     SignedByte    ioFVersNum;
  130.     SignedByte    filler1;
  131.     int            ioFDirIndex;
  132.     SignedByte    ioFlAttrib;
  133.     SignedByte    ioFlVersNum;
  134.     FInfo        ioFlFndrInfo;
  135.     long        ioFlNum;
  136.     int            ioFlStBlk;
  137.     long         ioFlLgLen;
  138.     long        ioFlPyLen;
  139.     int            ioFlRStBlk;
  140.     long        ioFlRLgLen;
  141.     long        ioFlRPyLen;
  142.     long        ioFlCrDat;
  143.     long        ioFlMdDat;
  144.     } fileParam, FileParam ;
  145.  
  146. /*  volume parameter block  */
  147. typedef struct
  148.     {
  149.     STANDARD_PBHEADER
  150.     long        filler2;
  151.     int            ioVolIndex;
  152.     long        ioVCrDate;
  153.     long        ioVLsBkUp;
  154.     int            ioVAtrb;
  155.     int            ioVNmFls;
  156.     int            ioVDirSt;
  157.     int            ioVBlLn;
  158.     int            ioVNmAlBlks;
  159.     long        ioVAlBlkSiz;
  160.     long        ioVClpSiz;
  161.     int            ioAlBlSt;
  162.     long        ioVNxtFNum;
  163.     int            ioVFrBlk;
  164.     } volumeParam, VolumeParam ;
  165.  
  166.  
  167. typedef union {
  168.     ioParam        ioParam;
  169.     fileParam    fileParam;
  170.     volumeParam    volumeParam;
  171. } ParamBlockRec, *ParmBlkPtr;
  172.  
  173.  
  174. /*  volume control block  */
  175. typedef struct
  176.     {
  177.     struct QElem *qLink;
  178.     int            qType;
  179.     int            vcbFlags;
  180.     int            vcbSigWord;
  181.     long        vcbCrDate;
  182.     long        vcbLsBkUp;
  183.     int            vcbAtrb;
  184.     int            vcbNmFls;
  185.     int            vcbDirSt;
  186.     int            vcbBlLn;
  187.     int            vcbNmBlks;
  188.     long        vcbAlBlkSiz;
  189.     long        vcbClpSiz;
  190.     int            vcbAlBlSt;
  191.     long        vcbNxtFNum;
  192.     int            vcbFreeBks;
  193.     char        vcbVN[28];
  194.     int            vcbDrvNum;
  195.     int            vcbDRefNum;
  196.     int            vcbFSID;
  197.     int            vcbVRefNum;
  198.     Ptr            vcbMAdr;
  199.     Ptr            vcbBufAdr;
  200.     int            vcbMLen;
  201.     int            vcbDirIndex;
  202.     int            vcbDirBlk;
  203.     } VCB ;
  204.  
  205.  
  206. /*  drive queue element  */
  207.  
  208. typedef    struct    
  209.     {
  210. /*    long        flags;        */
  211.     struct QElem *qLink; 
  212.     int            qType;
  213.     int            dQDrive;
  214.     int            dQRefNum;
  215.     int            dQFSID;
  216.     int            dQDrvSize;
  217.     } DrvQEl,*DrvQElPtr ;
  218.  
  219.  
  220. /*  functions returning non-integral values  */
  221. pascal struct QHdr *GetFSQHdr();
  222. pascal struct QHdr *GetDrvQHdr();
  223. pascal struct QHdr *GetVCBQHdr();
  224.  
  225. /*  low-memory globals  */
  226. extern int BootDrive : 0x210;
  227. extern struct QHdr DrvQHdr : 0x308;
  228. extern ProcPtr EjectNotify : 0x338;
  229. extern Ptr FCBSPtr : 0x34E;
  230. extern VCB *DefVCBPtr : 0x352;
  231. extern struct QHdr VCBQHdr : 0x356;
  232. extern struct QHdr FSQHdr : 0x360;
  233.  
  234.  
  235. #endif _FileMgr_